import arlab.formulae._

object Main {
  def main(args: Array[String]) {
    println("Test 1:" + test)
    println("Test 2:" +test1)
    println("Test 3:" +test2)
    println("Test 4:" +test3)
    println("Test 5:" +test4)
    println("Test 6:" +test5)
  }
  //def helloWorld = "Hello, World!"

  // Tests für Aufgabe 1.2.4
  def test  = {
       And(Predicate("P",Variable("x"),Function("g",Function("f"),Variable("x"))),
            Not(Or(Predicate("Q"),Predicate("R",Variable("y"))))
        )
  }

  def test1 ={
    Predicate("P",Variable("x"),Function("g",Function("f"),Variable("x")))&&(-(Predicate("Q")||(Predicate("R",Variable("y")))))
  }

  def test2 ={
    ForAll(Variable("x"), Exists(Variable("y"),Or(Predicate("P", Function("f",Variable("y")),Variable("x")), Not(Predicate("Q",Variable("x"))))))
  }
  def test3 = {
    ForAll(Variable("x"), Exists(Variable("y"), Predicate("P", Function("f",Variable("y")),Variable("x")) ||(-(Predicate("Q",Variable("x"))))))
  }
  
  //Zusätzliche Testfälle
  def test4 =  {
    True&&(True)
  }

  //
  def test5 =  {
    -(Predicate("P", Variable("x"))||(Predicate("P", Variable("y"))&&(-(Predicate("R",Variable("z"))))))
  }
}
